return false;
}));
- this._positionWindows(WindowPositionFlags.NONE);
+ this._recalculateWindowPositions(WindowPositionFlags.NONE);
},
_lookupIndex: function (metaWindow) {
clone = null;
this._reservedSlot = clone;
- this._positionWindows(WindowPositionFlags.ANIMATE);
+ this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
},
- _positionWindows: function(flags) {
+ _recalculateWindowPositions: function(flags) {
this._positionWindowsFlags |= flags;
if (this._positionWindowsId > 0)
return;
this._positionWindowsId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
- this._realPositionWindows(this._positionWindowsFlags);
+ this._realRecalculateWindowPositions(this._positionWindowsFlags);
this._positionWindowsFlags = 0;
this._positionWindowsId = 0;
return false;
}));
},
- _realPositionWindows : function(flags) {
+ _realRecalculateWindowPositions: function(flags) {
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
if (this._reservedSlot)
clones.push(this._reservedSlot);
+ this._currentLayout = this._computeLayout(clones);
+ this._updateWindowPositions(flags);
+ },
+
+ _updateWindowPositions: function(flags) {
let initialPositioning = flags & WindowPositionFlags.INITIAL;
let animate = flags & WindowPositionFlags.ANIMATE;
- let layout = this._computeLayout(clones);
+ let layout = this._currentLayout;
let strategy = layout.strategy;
let [, , padding] = this._getSpacingAndPadding();
return true;
}
- this._positionWindows(WindowPositionFlags.ANIMATE);
+ this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
return false;
},
clone.overlay.relayout(false);
}
- this._positionWindows(WindowPositionFlags.ANIMATE);
+ this._recalculateWindowPositions(WindowPositionFlags.ANIMATE);
},
_windowAdded : function(metaWorkspace, metaWin) {
// Animate the full-screen to Overview transition.
zoomToOverview : function() {
// Position and scale the windows.
- this._positionWindows(WindowPositionFlags.ANIMATE | WindowPositionFlags.INITIAL);
+ this._recalculateWindowPositions(WindowPositionFlags.ANIMATE | WindowPositionFlags.INITIAL);
},
// Animates the return from Overview mode
}));
clone.connect('size-changed',
Lang.bind(this, function() {
- this._positionWindows(WindowPositionFlags.NONE);
+ this._recalculateWindowPositions(WindowPositionFlags.NONE);
}));
this.actor.add_actor(clone.actor);